package active;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
 * @author 陈华旺
 * @version 1.0
 * @date 2023年11月23日 15:15
 * @Description TODO
 */
@WebServlet("/test18")
public class Test18Cookie extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//        cookie 是浏览器的存储空间，基本用于记录服务器返回的相关数据值
//        通过设置服务器的响应对象，添加响应数据 set-cookie ，进行服务器数据向客户端数据的传递
//        浏览器在接收响应时，如果发现响应结果中存在 set-cookie 属性，就会将该属性对应的数据存放到浏览器的存储空间中
//        浏览器在发生请求时，会将当前域名对应的所有 cookie 数据，作为请求头中 cookie 属性进行携带

        Cookie[] cookies = req.getCookies();
        if(cookies!=null){
            for (int i = 0; i < cookies.length; i++) {
                System.out.println( cookies[i].getName() +"="+ cookies[i].getValue() );
            }
        }

//        addCookie会在响应结果中添加 set-cookie 属性，并携带服务器数据(文本数据-不能过大-只能存储英文字母符合)
        Cookie cookie = new Cookie("info", "abc-cookies");
        resp.addCookie(cookie);

        resp.getWriter().println("OK");
    }
}
